package com.rui.observer.model.push;

import java.util.ArrayList;
import java.util.List;

/**
 * @Description: 具体的被观察者(公众号)
 * @Author: ZhangRui
 * @Date: 2023/3/3 15:39
 * @Version: 1.0
 */
public class Subject implements Observable {

    /**
     * 观察者列表(订阅用户)
     */
    private List<Observer> list = new ArrayList<>();

    @Override
    public void add(Observer observer) {
        list.add(observer);
    }

    @Override
    public void del(Observer observer) {
        list.remove(observer);
    }

    /**
     * 给每一个观察者(订阅者)推送消息
     *
     * @param null
     * @return
     * @author ZhangRui
     * @date 2023/3/3 15:42
     */
    @Override
    public void notify(String message) {
        list.forEach(observer -> observer.update(message));
    }

}
